XDCMS 3.0 后台友情链接sql注入

一、漏洞简介

二、漏洞影响

XDCMS 3.0

三、复现过程

友链title和url部分过滤函数成功防御了XSS,但对SQL过滤不全,关键代码如下:

system/modules/link/admin.php
public function addsave(){
    $title=safe_html($_POST['title']);
    $url=safe_html($_POST['url']);
    if(empty($title)||empty($url)){
        showmsg(C('material_not_complete'),'-1');
    }
    $this->mysql->db_insert('link',"`title`='".$title."',`url`='".$url."',`inputtime`='".datetime()."',`is_lock`=0");
    showmsg(C('add_success'),'index.php?m=link&c=admin');
}
safe_html()
function safe_html($str){
    if(empty($str)){return;}
    $str=preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file
|outfile/','',$str);
    return htmlspecialchars($str);
}

经检测,后台多处存在与上面原理相同SQL注入,不再一一记录。